Ik ben maar een beginner in Swift-codering. Mijn idee is vrij simpel: een app met twee knoppen. Wanneer erop wordt geklikt, verandert een tekstveld zijn tekst. In het Main.StoryBoard voeg ik een tekstveld en twee knoppen toe. In het bestand ViewController.swift. Ik schrijf als volgt: importeer UIKit klasse ViewController: UIViewController { @IBOutlet zwakke var tekstveld: UITextField! @IBOutlet zwakke var-knop: UIButton! @IBOutlet zwakke var button2: UIButton! @IBAction func action1 (_ afzender: UIButton) { textfield.text = "je hebt zojuist op button1 geklikt" } @IBAction func action2 (_ afzender: UIButton) { textfield.text = "je hebt zojuist op button2 geklikt" } } Het zou in orde moeten zijn. Er verschijnt echter een fout die laat zien: thread1: signaal SIGABRT in het bestand AppDelegate.swift regel: klasse AppDelegate: UIResponder, UIApplicationDelegate Wat is er mis met mijn code?
2021-01-15 08:17:18
Om het probleem op te lossen, moet u eerst het project opschonen en vervolgens opnieuw opbouwen. Om het project op te schonen, ga naar MenuBar: Product -> Clean Om het project vervolgens opnieuw op te bouwen, klikt u zoals gewoonlijk op de knop Uitvoeren. | U krijgt een SIGABRT-foutmelding wanneer u een losgekoppeld stopcontact heeft. Klik op je view controller in het storyboard en ga naar verbindingen in het zijpaneel (het pijlsymbool). Kijk of je daar een extra stopcontact hebt, een duplicaat of een extra die niet is aangesloten. Als dat niet het geval is, hebt u uw stopcontacten misschien niet correct op uw code aangesloten. Onthoud gewoon dat SIGABRT gebeurt wanneer u probeert een stopcontact te bellen (knop, weergave, tekstveld, enz.) Dat er niet is. | Voor mij was het geen uitlaatklep. Ik loste het probleem op door naar de fout te gaan en te lezen wat er stond. (Ook Noob ..) Dit was de fout: En de oplossing was hier: Blader gewoon omhoog in de uitvoer en de fout wordt onthuld. | Een veel voorkomende reden voor dit type fout is dat u mogelijk de naam van uw IBOutlet of IBAction heeft gewijzigd. U kunt dit eenvoudig controleren door naar de broncode te gaan. Klik op het main.storyboard en selecteer vervolgens openen als en selecteer vervolgens de broncode broncode wordt geopend en controleer dan of er de naam is van de iboutlet of ibaction die je hebt gewijzigd, als die er is, selecteer dan het onderdeel en verwijder het en maak dan opnieuw iboutlet of ibaction aan. Dit zou uw probleem moeten oplossen | In mijn geval kreeg ik geen foutmelding alleen de crash in de AppDelegate en ik moest de volgende optie uitschakelen: OS_ACTIVITY_MODE, dan kon ik de echte crashreden in mijn .xib-bestand krijgen Ik hoop dat dit jou ook kan helpen :) | Ik had hetzelfde probleem. Ik heb een knop in het storyboard gemaakt en deze met de ViewController verbonden, en later heb ik de knop verwijderd. Dus de verbinding was er nog, maar de knop niet, en dus kreeg ik dezelfde foutmelding als jij. Repareren: Ga naar de verbindingsinspecteur (de pijl in de rechterbovenhoek, in je storyboard) en verwijder alle ongebruikte verbindingen. | Als je dit tegenkomt in Xcode 10, moet je opschonen voordat je gaat bouwen. Of schakel over naar het legacy build-systeem. Bestand -> Werkruimte-instellingen ... -> Build-systeem: Legacy Build-systeem. | In mijn geval was er helemaal geen logboek. Mijn fout was om een view controller in een navigatiestapel te duwen die al deel uitmaakte van de navigatiestapel. | Soms gebeurt het ook wanneer de functie alleen in de hoofdthread moet worden uitgevoerd, dus u kunt het oplossen door het als volgt aan de hoofdthread toe te wijzen: - DispatchQueue.main.async { uw code hier } | Voor mij was deze fout omdat ik een voorbereidingssegue-stap had die niet van toepassing was op de segue die werd gedaan. lang verhaal: func voorbereiden overschrijven (voor segue: UIStoryboardSegue, afzender: elke?) { laat gosetup = segue.destination as! Bijwerken gosetup.wherefrom = updatestring } Dit werd aan alle segue gedaan terwijl het er maar voor één was. Dus ik maak een booleaanse waarde en plaatste de gosetup erin. | Dit is een veel voorkomende fout die om meerdere redenen kan optreden. De meest voorkomende is wanneer een IBOUTLET / IBACTION die is aangesloten op een viewcontroller in het storyboard, wordt verwijderd uit het Swift-bestand, maar niet uit het storyboard. Als dit niet het geval is, gebruik dan het logboek in de onderste werkbalk om erachter te komen wat de fout is en om een diagnose te stellen. U kunt onderbrekingspunten en foutopsporing gebruiken om u te helpen de fout te vinden. Gebruik dit artikel dat ik op Google heb gevonden om erachter te komen hoe u de fout kunt oplossen: https://rayaans.com/fixing-the-notorious-sigabrt-error-in-xcode | In mijn geval gebruikte ik RxSwift voor het uitvoeren van zoekopdrachten. Ik was op grote schaal een gedeeld exemplaar van een bepaalde klasse binnen de onNext-methode blijven gebruiken, waardoor het waarschijnlijk ontoegankelijk was (Mutex). Zorg ervoor dat dergelijke gevallen alleen voorzichtig worden behandeld als dit absoluut noodzakelijk is. In mijn geval heb ik van tevoren een aantal variabelen gebruikt om de retourwaarden van de methoden van de gedeelde instantie veilig (en opeenvolgend) op te slaan en ze opnieuw te gebruiken in het onNext-blok. | Ik had hetzelfde probleem. In mijn geval heb ik het bestand gewoon overschreven GoogleService-Info.plist op dat pad: Platform \ ios \ YOUR_APP_NAME \ Resources \ Resources In mijn geval waren de bestanden aanwezig zonder gegevens. | Zeer actieve vraag. Verdien 10 reputatie om deze vraag te beantwoorden. De reputatievereiste helpt deze vraag te beschermen tegen spam en niet-beantwoording. Niet het antwoord waar je naar zoekt? Blader door andere vragen met de tag ios swift of stel uw eigen vraag.